home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 2 / DOS036.dsk / LUCY.bas < prev    next >
BASIC Source File  |  2012-02-16  |  8KB  |  150 lines

  1. 0  POKE 01,00: GOTO 10: REM * ONERR <CTRL-A> VTAB <CTRL-A> LOMEM: <CTRL-A> DEL <CTRL-B> CLEAR <UNKNOWN TOKEN><CTRL-A> LEFT$ - PLOT <UNKNOWN TOKEN>W - <UNKNOWN TOKEN>" -?<UNKNOWN TOKEN>) -!<UNKNOWN TOKEN>% -A<CTRL-P><CTRL-E>LB<CTRL-H>B<CTRL-H> -[<CTRL-P><UNKNOWN TOKEN> SCALE= /<CTRL-H> +L<CTRL-X><CTRL-H> -'<UNKNOWN TOKEN> ABS SPEED=   AT <CTRL-B><UNKNOWN TOKEN>  OR  SCALE= /<CTRL-H> +L<CTRL-X><CTRL-H> SCALE= /<CTRL-H> ONERR <CTRL-B> -  = <CTRL-G> POKE /<CTRL-H> +L<CTRL-X><CTRL-H> POKE /<CTRL-H> + SCALE= /<CTRL-H> GR  SPEED=   SCALE= /<CTRL-H> + + SCALE= /<CTRL-H> +L<CTRL-X><CTRL-H> SPEED= " SCALE= /<CTRL-H> + SPEED= : SCALE= /<CTRL-H> + SPEED=  RETURN  SCALE= /<CTRL-H> + SPEED= : SCALE= /<CTRL-H> + SPEED=  REM  SCALE= /<CTRL-H>`*******************************************
  2. 1 I$ = " GOODBYE ! ! ! ! ": RETURN : REM VWXYZ ABCDEFGH IJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMABCDEFGHIJKLMNOPQRSTUVWXYZ ABCD ": RETURN : REM AA": RETURN : REM AAAAAAAAAAAAAAAAAAAAAAAAAA AAAA AAAAAAAAAAAAAAA": RETURN : REM ***********": RETURN 
  3. 2 KK = 0: FOR I = 1 TO  LEN(I$)
  4. 3 KK = KK +1: PRINT  MID$ (I$,I,1);: IF KK >30  AND  MID$ (I$,I,1) = " "  THEN  PRINT :KK = 0
  5. 4  NEXT I
  6. 5  PRINT : PRINT : RETURN 
  7. 10  DIM RF$(330),RF%(330)
  8. 12 D$ = "<CTRL-D>"
  9. 13  PRINT D$;"NOMONI,C,O": HOME 
  10. 14  GOSUB 155: GOSUB 30000
  11. 15  PRINT D$;"OPEN  LDATA,L100":DF = 1
  12. 16  PRINT D$;"READ  LDATA,R";DF: INPUT RF$(DF): INPUT RF%(DF)
  13. 17 DF = DF +1: IF DF = 331  THEN 20
  14. 18  GOTO 16
  15. 20  PRINT D$;"CLOSE  LDATA"
  16. 30  HOME 
  17. 80  PRINT "ALMOST READY. I HOPE YOU ARE NOT": PRINT "GROWING IMPATIENT."
  18. 90 N1 = 113:N2 = 14:N3 = 112
  19. 100  DIM R%(113),KW$(113),WO$(42),WC$(14),RE%(113),RN%(29),R26%(15,3)
  20. 102  PRINT D$;"OPEN  LWORDS": PRINT D$;"READ  LWORDS"
  21. 103  FOR I = 1 TO N1: INPUT KW$(I): NEXT 
  22. 104  FOR I = 1 TO N2: INPUT WC$(I): NEXT 
  23. 105  FOR I = 1 TO N1: INPUT RE%(I): NEXT 
  24. 110  FOR I = 1 TO 3: FOR II = 1 TO 15: INPUT R26%(II,I): NEXT : NEXT 
  25. 120  PRINT D$;"CLOSE  LWORDS"
  26. 130  HOME 
  27. 150  GOTO 170
  28. 155  TEXT : HOME 
  29. 160  HTAB 8: PRINT "    ***********   "
  30. 161  HTAB 8: PRINT "    *         *   BY"
  31. 163  HTAB 8: PRINT "    *  LUCY   *      ROGER "
  32. 164  HTAB 8: PRINT "    *         *      KEATING"
  33. 165  HTAB 8: PRINT "    ***********   "
  34. 166  VTAB 20: POKE 34,6: HOME : RETURN 
  35. 170  REM 
  36. 180  REM  ****USER INPUT SECTION****
  37. 190  REM 
  38. 200 KK = 4:I$ = "": PRINT "?  ";:COUNT = 3:LINE = 1:H$ = "":CT = 0
  39. 201  FOR I = 512 TO 639: POKE I,20: NEXT I
  40. 202 TX = 1000
  41. 205  POKE  -16368,0:JK = 0: IF KK <0  THEN KK = 0
  42. 207 JK = JK +1
  43. 208  IF JK = TX  THEN  GOSUB 28000
  44. 209  IF  PEEK( -16384) <127  THEN 207
  45. 210  CALL  -958
  46. 211 TX = 1000
  47. 212  GET V$
  48. 213 V =  ASC(V$): IF V = 8  OR V = 21  OR V = 13  THEN  GOTO 288
  49. 214  IF CO >150  THEN  PRINT "<CTRL-G><CTRL-G>": GOTO 205
  50. 215  POKE 512 +CO,V
  51. 220  PRINT V$;
  52. 230  IF KK >30  AND V$ = " "  THEN  PRINT :CO = 40 *LINE:LINE = LINE +1:KK = 0: GOTO 205
  53. 240 KK = KK +1:CO = CO +1
  54. 250  GOTO 205
  55. 288  IF V = 8  AND CO =  <1  THEN 205
  56. 290  IF V = 8  THEN COUNT = COUNT -1:CT = CT -3: PRINT V$;: CALL  -958:KK = KK -1: POKE 512 +CO,20: GOTO 205
  57. 291  IF V = 21  THEN 205
  58. 293  POKE 512 +CO +1,141
  59. 294  CALL 2066
  60. 295  GOSUB 1
  61. 296  IF  RIGHT$(I$,1) < >" "  THEN I$ = I$ +" "
  62. 301  PRINT : FOR IP = 1 TO 35: PRINT "-";: NEXT : PRINT 
  63. 310 Q = 1
  64. 320  FOR I = 1 TO  LEN(I$): IF Q >40  THEN 350
  65. 330 V$ =  MID$ (I$,I,1): IF V$ = " "  THEN WO$(Q) = A$:V$ = "":Q = Q +1:A$ = ""
  66. 340 A$ = A$ +V$
  67. 345  NEXT 
  68. 350  FOR I = Q TO 42:WO$(I) = "": NEXT 
  69. 351  FOR I = 1 TO Q
  70. 352  IF WO$(I) = "CAN"  AND WO$(I +1) = "YOU"  THEN WO$(I) = WO$(I) +" " +WO$(I +1):WO$(I +1) = ""
  71. 353  IF WO$(I) = "CAN"  AND WO$(I +1) = "I"  THEN WO$(I) = WO$(I) +" " +WO$(I +1):WO$(I +1) = ""
  72. 354  IF WO$(I) = "YOU"  AND WO$(I +1) = "ARE"  THEN WO$(I) = WO$(I) +" " +WO$(I +1):WO$(I +1) = ""
  73. 355  IF WO$(I) = "I"  AND WO$(I +1) = "DONT"  THEN WO$(I) = WO$(I) +" " +WO$(I +1):WO$(I +1) = ""
  74. 356  IF WO$(I) = "I"  AND WO$(I +1) = "FEEL"  THEN WO$(I) = WO$(I) +" " +WO$(I +1):WO$(I +1) = ""
  75. 357  IF WO$(I) = "I"  AND WO$(I +1) = "CANT"  THEN WO$(I) = WO$(I) +" " +WO$(I +1):WO$(I +1) = ""
  76. 358  IF WO$(I) = "I"  AND WO$(I +1) = "AM"  THEN WO$(I) = WO$(I) +" " +WO$(I +1):WO$(I +1) = ""
  77. 359  IF WO$(I) = "I"  AND WO$(I +1) = "WANT"  THEN WO$(I) = WO$(I) +" " +WO$(I +1):WO$(I +1) = ""
  78. 360  IF WO$(I) = "ARE"  AND WO$(I +1) = "YOU"  THEN WO$(I) = WO$(I) +" " +WO$(I +1):WO$(I +1) = ""
  79. 361  IF WO$(I) = "WHY"  AND WO$(I +1) = "CANT"  AND WO$(I +2) = "I"  THEN WO$(I) = WO$(I) +" " +WO$(I +1) +" " +WO$(I +2):WO$(I +1) = "":WO$(I +2) = ""
  80. 362  IF WO$(I) = "WHY"  AND WO$(I +1) = "DONT"  AND WO$(I +2) = "YOU"  THEN WO$(I) = WO$(I) +" " +WO$(I +1) +" " +WO$(I +2):WO$(I +1) = "":WO$(I +2) = ""
  81. 363  NEXT 
  82. 364  IF WO$(2) = "GOODBYE"  THEN  HOME : PRINT "GOODBYE FOR NOW -- ": END 
  83. 369 S = 0:T = 0
  84. 370  FOR K = 1 TO N1: FOR L = 1 TO Q
  85. 375  IF S >0  THEN 385
  86. 380  IF KW$(K) = WO$(L)  THEN S = K:T = L:K = N1
  87. 385  NEXT : NEXT 
  88. 386  IF S >0  THEN K = S:L = T: GOTO 390
  89. 387 K = N1: GOTO 850
  90. 390  IF RE%(K) < >26  THEN 580
  91. 400  REM    USING THE LIST OF STRINGS TO BE SWAPPED
  92. 410  REM 
  93. 440  FOR L = T TO Q
  94. 450  FOR J = 1 TO N2  STEP 2
  95. 460  IF WO$(L) = WC$(J)  THEN WO$(L) = WC$(J +1): GOTO 480
  96. 470  IF WO$(L) = WC$(J +1)  THEN WO$(L) = WC$(J): GOTO 480
  97. 480  NEXT : NEXT 
  98. 530 C$ = ""
  99. 535  IF T =  >Q  THEN 580
  100. 540  FOR X = T +1 TO Q
  101. 550 C$ = C$ +" " +WO$(X): NEXT 
  102. 570 C$ = C$ +" "
  103. 580  REM 
  104. 650  IF RE%(K) = 26  THEN 950
  105. 660  IF RE%(K) = 29  THEN 1000
  106. 680  IF R%(RE%(K)) = 10  THEN R%(RE%(K)) = 0
  107. 690 R%(RE%(K)) = R%(RE%(K)) +1:Q = 10 *(RE%(K) -1) +R%(RE%(K))
  108. 700  IF RE%(K) >26  THEN Q = Q +30
  109. 710 I$ = RF$(Q):P = RF%(Q)
  110. 730  IF  RIGHT$(I$,1) < >"*"  THEN  GOSUB 2: GOTO 770
  111. 740 I$ =  LEFT$(I$, LEN(I$) -1) +C$
  112. 760  GOSUB 2
  113. 770  FOR K = 1 TO 3:RI(K) = RI(K +1): NEXT :RI(3) = P
  114. 780  PRINT : FOR IP = 1 TO 35: PRINT "=";: NEXT : PRINT : GOTO 170
  115. 850  REM  NO KEY WORD
  116. 860  FOR I = 1 TO 3: IF RI(I) = 0  THEN 880
  117. 870  FOR X = 1 TO 113: IF RE%(X) = RI(I)  THEN K = X:X = 113
  118. 875  NEXT 
  119. 880  NEXT : GOTO 650
  120. 950 Z = K -95: IF R26%(Z,3) = R26%(Z,2)  THEN R26%(Z,3) = 0
  121. 955 R26%(Z,3) = R26%(Z,3) +1
  122. 960 Q = R26%(Z,1) +R26%(Z,3) -1
  123. 970  FOR I = 1 TO 15: IF R26%(I,1) = R26%(Z,1)  THEN R26%(I,3) = R26%(Z,3)
  124. 980  NEXT 
  125. 985 Q = 10 *(RE%(K) -1) +Q
  126. 990  GOTO 700
  127. 1000  IF R%(RE%(K)) = 20  THEN R%(RE%(K)) = 0
  128. 1010  GOTO 690
  129. 1040  REM 
  130. 27000 S =  PEEK( -16336) - PEEK( -16336) + PEEK( -16336) - PEEK( -16336) + PEEK( -16336) + PEEK( -16336): RETURN 
  131. 28000 JK =  INT(JK/1000)
  132. 28010  ON JK GOTO 28011,28040,28060,28060,28060
  133. 28011  FLASH : PRINT "<CTRL-G><CTRL-G><CTRL-G><CTRL-G> COME ON ";
  134. 28015  NORMAL 
  135. 28020  FOR I = 1 TO 9: PRINT  CHR$(8);: NEXT 
  136. 28030 TX = TX +1000
  137. 28035  RETURN 
  138. 28040  FLASH : PRINT "<CTRL-G><CTRL-G><CTRL-G><CTRL-G> TALK - OR ELSE! ";: NORMAL : FOR I = 1 TO 17: PRINT  CHR$(8);: NEXT 
  139. 28050  GOTO 28030
  140. 28060  FLASH : PRINT : PRINT "<CTRL-G><CTRL-G><CTRL-G><CTRL-G> O.K. - LET SOMEONE ELSE HAVE A GO. ": NORMAL 
  141. 28065 D$ = "<CTRL-D>"
  142. 28070  FOR I = 1 TO 2000: NEXT 
  143. 28080  PRINT D$;"RUN ELIZA"
  144. 28090  PRINT D$;"RUN ELIZA"
  145. 30000  HOME 
  146. 30010  SPEED= 100:I$ = "HELLO. I AM LUCY, THE COMPUTER PROGRAM THAT TALKS TO YOU .": GOSUB 2
  147. 30012 I$ = "SOMETIMES I AM A BIT SLOW,  SO PLEASE EXCUSE ME WHEN I AM,  BUT I HAVE TO DIGEST CAREFULLY ALL OF YOUR THOUGHTS AND MAKE UP AN APPROPRIATE REPLY."
  148. 30015  GOSUB 2:I$ = "WHEN YOU WISH TO END JUST TYPE 'GOODBYE'. I HOPE YOU ARE A GOOD CONVERSATIONALIST.": GOSUB 2
  149. 30020 I$ = "PLEASE WAIT FOR ABOUT ONE MINUTE WHILE I JUST STRAIGHTEN MYSELF UP. THANK YOU. ---": GOSUB 2
  150. 30040  SPEED= 255: RETURN